for (terraform)
式の中で繰り返しを行う構文
主に新しいリストやマップを生成する目的で使う
リスト内包表記的
[for <ITEM> in <LIST> : <OUTPUT>]
リストの場合
各要素 v に 2 を掛けた新しいリストを生成する例
code:hcl
for v in var.values : v * 2
code:hcl(rb)
variable "values" {
default = 1, 2, 3
}
output "double" {
value = for v in var.values : v * 2
}
code:結果
double = 2, 4, 6
マップの場合
各値を大文字化した新しいマップを生成する例
code:hcl
{for k, v in var.map : k => upper(v)}
code:hcl(rb)
variable "map" {
default = {
dev = "alice"
prod = "bob"
}
}
output "upper" {
value = {for k, v in var.map : k => upper(v)}
}
code:結果 (rb)
upper = {
dev = "ALICE"
prod = "BOB"
}
条件付き
条件に一致する要素のみ抽出できる
code:hcl
for v in var.values : v if v > 1
/mrsekut-book-4814400527/339 (5.1.3 for式によるループ)
/mrsekut-book-4814400527/358 (5.2.2 for eachとforを使った条件分岐)